Unified Modeling Language (UML) is a general-purpose modeling language that is used to provide a standard way to visualize the design of a system, and is currently managed by the Object Management Group (OMG). UML provides visualization of components of a particular system in one or more diagrams. For example, UML allows for visualization of activities, components of a system, interactions with software, how a system runs, how entities interact with other, external user interfaces, and the like.
Originally, UML was developed to define a common set of tools that individuals could use to define a system. The common set of tools and techniques were intended to allow individuals to work on different projects and use past experience to facilitate future projects, or utilize previously-performed work.
Notably, rules for implementing UML are defined by OMG. However, methods for implementation of the rules are not mandated. As such, tool vendors developed and utilize different tools to construct diagrams, capture data, and correlate the data with the diagrams. Differences between the tools used by separate and distinct tool vendors decreases the intended benefit of UML, and generally increases the learning curve for use of a new model. For example, there is generally a learning curve when moving to a model that was constructed with a different tool.
OMG attempted to rectify this issue through XMI (XML Metadata Interchange). XMI is a file format used to move model data (data alone, not diagrams) between tools. However,)(MI does not include diagram data. Therefore, only model data is transferred. While there are a few vendor-specific extensions of XMI that are used to move diagram data, using such extensions is labor intensive. For example, an individual typically adjusts or redraws diagrams created with a first tool in relation to a second tool that differs from the first tool.
Additionally, tool makers often add extensions to their UML implementation. The extensions are typically added to the XMI files, but the receiving tool is generally unable to understand the extension, and therefore discards the data.
Also, an exporting tool interprets and exports the data into the XMI, while an importing tool displays XMI data as the importing tool interprets the XMI data. Consequently, however, an imported model differs from the exported model.
Further, there are typically numerous XMI files for every project. Yet, stand-alone XMI files generally cannot be viewed by end users. As such, the stand-alone XMI files are typically unable to be analyzed.
In short, multiple UML tools exist. Each UML tool includes a unique protocol for storing data and images. A need exists for a system and method for quickly and easily gaining access to information from UML tools.